Ulm Ux Api
Starkink - TMF637 - Retrieve product services
/product
[GET]
This operation retrieves the services and products based on billing account id.
https://[localhost]:[port]/ulm-ux/tmf-api/productInventory/v1/{businessId}/productCWP URL
LCPR URL
https://nonprod.esb.cloud.lla.com/test/ulm-ux/ulm-ux/tmf-api/productInventory/v1/PR/product
LC URL (including LATAM)
https://nonprod.lc.esb.cloud.lla.com/test/ulm-ux-lc/ulm-ux/tmf-api/productInventory/v1/JM/product
LCR URL
https://nonprod.lcr.esb.cloud.lla.com/test/ulm-ux-lcr/ulm-ux/tmf-api/productInventory/v1/CR/product
url Param
| name | type | description | required |
|---|---|---|---|
| businessId | string | 2 letter ISO 3166 country code (JM,KY,BB,TT,PR,CR,CO,SV,GT,HN,DO,PA) identifying the business unit. | Y |
Header
| name | type | description | required |
|---|---|---|---|
| client_id | string | The client_id identifying the channel. Minimum characters: 5 | Y |
| client_secret | string | Password associated with the client_id. Minimum characters: 5 | Y |
| X-Correlation-ID | string | Identifier that correlates HTTP request between a client and server. Any identification model (UUDI, checksum, etc.) can be used, as long as it is a unique value to differentiate a transaction. | N |
Query Param
| name | type | description | required |
|---|---|---|---|
| billingAccount.id | string | Unique identifier of the billing account. | Y |
| fields | Additional products to be included or excluded example: "product" or "--product" | Y |
Include Products -
cURL request (CWP | Liberate (billing account length - 12)
curl --location 'https://nonprod.cwp.esb.cloud.lla.com/preprod/ulm-ux-cwp/ulm-ux/tmf-api/productInventory/v1/PA/product?billingAccount.id=xxxxxxxxxxxx&fields=product' \
--header 'client_id: xxxxx' \
--header 'client_secret: xxxxx' \
--header 'X-Correlation-ID: {{$guid}}'Response
[
{
"billingAccount": {
"id": "xxxxxxxxxxxx"
},
"id": "SAT00003",
"name": "LC",
"status": "active",
"isBundle": true,
"@baseType": "Product",
"productCharacteristic": [
{
"name": "uniqueServiceId",
"value": "xxxxxxx"
},
{
"name": "serviceStatusCode",
"value": "W"
},
{
"name": "prepaidService",
"value": false
},
{
"name": "mobileService",
"value": false
},
{
"name": "exDirectory",
"value": false
}
],
"product": [
{
"id": "xxxx",
"description": "ConnectLink Antena High Performance EQ",
"status": "active",
"productCharacteristic": [
{
"name": "productStatusCode",
"value": "W"
}
]
},
{
"id": "xxxx",
"description": "Enterprise ConnectLink 50GB Add-on",
"status": "suspended",
"productCharacteristic": [
{
"name": "productStatusCode",
"value": "C"
}
]
},
{
"id": "xxxx",
"description": "Enterprise ConnectLink Cargo por Acceso",
"status": "active",
"productCharacteristic": [
{
"name": "productStatusCode",
"value": "W"
}
]
},
{
"id": "xxxx",
"description": "ConnectLink Antena High Performance EQ",
"status": "suspended",
"productCharacteristic": [
{
"name": "productStatusCode",
"value": "Z"
}
]
},
{
"id": "xxxx",
"description": "Enterprise ConnectLink 50GB",
"status": "active",
"productCharacteristic": [
{
"name": "productStatusCode",
"value": "W"
}
]
},
{
"id": "xxxx",
"description": "ConnectLink Antena High Performance EQ",
"status": "suspended",
"productCharacteristic": [
{
"name": "productStatusCode",
"value": "Z"
}
]
}
]
}
]cURL request (LC | Liberate (billing account length - 12)
curl --location 'https://nonprod.lc.esb.cloud.lla.com/test/ulm-ux-lc/ulm-ux/tmf-api/productInventory/v1/JM/product?billingAccount.id=xxxxxxxxxxxx&fields=product' \
--header 'client_id: xxxxx' \
--header 'client_secret: xxxxx' \
--header 'X-Correlation-ID: {{$guid}}'Response
[
{
"billingAccount": {
"id": "xxxxxxxxxxxx"
},
"id": "SAT00002",
"name": "IN",
"status": "active",
"isBundle": true,
"@baseType": "Product",
"productCharacteristic": [
{
"name": "uniqueServiceId",
"value": "xxxxxx"
},
{
"name": "serviceStatusCode",
"value": "W"
},
{
"name": "prepaidService",
"value": false
},
{
"name": "mobileService",
"value": false
},
{
"name": "exDirectory",
"value": false
}
],
"product": [
{
"id": "xxxxx",
"description": "AlwaysUp Primary Product",
"status": "active",
"productCharacteristic": [
{
"name": "productStatusCode",
"value": "W"
}
]
},
{
"id": "xxxxx",
"description": "AlwaysUp 1TB - JMD",
"status": "active",
"productCharacteristic": [
{
"name": "productStatusCode",
"value": "W"
}
]
}
]
}
]cURL request (LC and LATAM markets| Cerillion (billing account length - 8)
curl --location 'https://nonprod.lc.esb.cloud.lla.com/test/ulm-ux-lc/ulm-ux/tmf-api/productInventory/v1/JM/product?billingAccount.id=xxxxxxxx&fields=product' \
--header 'client_id: xxxxx' \
--header 'client_secret: xxxxx' \
--header 'X-Correlation-ID: {{$guid}}'Response
[
{
"billingAccount": {
"id": "xxxxxxxx"
},
"id": "DA0910004112",
"name": "DA",
"startDate": "2025-11-18T23:00:00.000-05:00",
"status": "active",
"isBundle": true,
"@baseType": "Product",
"productCharacteristic": [
{
"name": "uniqueServiceId",
"value": "16127235"
},
{
"name": "serviceStatusCode",
"value": "CU"
},
{
"name": "prepaidService",
"value": false
},
{
"name": "mobileService",
"value": false
},
{
"name": "exDirectory",
"value": false
}
],
"product": [
{
"id": "CWSL01US",
"description": "AlwaysUp Primary Product - USD",
"status": "active",
"productCharacteristic": [
{
"name": "productStatusCode",
"value": "CU"
}
]
},
{
"id": "CWSL02US",
"description": "AlwaysUp 500GB - USD",
"status": "active",
"productCharacteristic": [
{
"name": "productStatusCode",
"value": "CU"
}
]
},
{
"id": "CWSL04US",
"description": "AlwaysUp Equipment - USD",
"status": "active",
"productCharacteristic": [
{
"name": "productStatusCode",
"value": "CU"
}
]
},
{
"id": "CWSL14US",
"description": "AlwaysUp Terminal Access Charge - USD",
"status": "active",
"productCharacteristic": [
{
"name": "productStatusCode",
"value": "CU"
}
]
}
]
}
]Response Mapping
| name | type | description | required |
|---|---|---|---|
| id | string | Unique identifier of the product/service | Y |
| description | string | Description of the product/service instance | N |
| name | string | Product/service name or service type (e.g., TP, DS) | Y |
| isBundle | boolean | Indicates whether the product/service is part of a bundle true if products are included | Y |
| startDate | string | Product/service activation/start date | N |
| status | string | Current status of the product service | Y |
| @baseType | string | Base type of the resource (Default: Product) | Y |
| billingAccount | object | Associated billing account information | Y |
| billingAccount.id | string | Billing account identifier | Y |
| productCharacteristic | array | List of product/service-specific characteristics | Y |
| productCharacteristic.name | string | Characteristic name (find the serviceStatusCode here) | Y |
| productCharacteristic.value | any | Characteristic value (find the serviceStatusCode here) | Y |
| product | array | List of products associated with the service | Y |
| product.id | string | Unique identifier of the associated product | Y |
| product.description | string | Description of the associated product | Y |
| product.status | string | Current status of the associated product | Y |
| product.productCharacteristic | array | List of product characteristics | Y |
| product.productCharacteristic.name | string | Characteristic name (example: productStatusCode) | Y |
| product.productCharacteristic.value | any | Characteristic value (example: "W") | Y |
Exclude Products -
cURL request example
curl --location 'https://nonprod.lc.esb.cloud.lla.com/test/ulm-ux-lc/ulm-ux/tmf-api/productInventory/v1/JM/product?billingAccount.id=123456789123&fields=--product' \
--header 'client_id: xxxxx' \
--header 'client_secret: xxxxx' \
--header 'X-Correlation-ID: {{$guid}}'Response
[
{
"id": "2441235",
"description": "UNI instance SPxxx",
"name": "TP",
"isBundle": "true",
"startDate": "2018-03-16T09:37:29.961Z",
"status": "active",
"@baseType": "Product",
"billingAccount": {
"id": "xxxxxxxx"
},
"productCharacteristic": [
{
"name": "prepaidService",
"value": false
},
{
"name": "mobileService",
"value": false
},
{
"name": "serviceStatusCode",
"value": "Active"
},
{
"name": "uniqueServiceId",
"value": "40908528"
},
{
"name": "exDirectory",
"value": "true"
},
{
"name": "serviceLineId",
"value": "xxxxxx"
},
{
"name": "serviceLineNameTag",
"value": "xxxxx"
},
{
"name": "circuitId",
"value": "xxxxxx"
}
]
},
{
"id": "DS2441235",
"description": "UNI instance SPxxx",
"name": "DS",
"isBundle": "true",
"startDate": "2018-03-16T09:37:29.961Z",
"status": "active",
"@baseType": "Product",
"billingAccount": {
"id": "xxxxxxxx"
},
"productCharacteristic": [
{
"name": "prepaidService",
"value": false
},
{
"name": "mobileService",
"value": false
},
{
"name": "serviceStatusCode",
"value": "Active"
},
{
"name": "uniqueServiceId",
"value": "50908672"
},
{
"name": "exDirectory",
"value": "true"
},
{
"name": "serviceLineId",
"value": "xxxxxx"
},
{
"name": "serviceLineNameTag",
"value": "xxxxx"
},
{
"name": "circuitId",
"value": "xxxxxx"
}
]
}
]Response Mapping
| name | type | description | required |
|---|---|---|---|
| id | string | Unique identifier of the product/service | Y |
| description | string | Description of the product/service instance | N |
| name | string | Product/service name or service type (e.g., TP, DS) | Y |
| isBundle | boolean | Indicates whether the product/service is part of a bundle true if products are included | Y |
| startDate | string | Product/service activation/start date | N |
| status | string | Current status of the product service | Y |
| @baseType | string | Base type of the resource (Default: Product) | Y |
| billingAccount | object | Associated billing account information | Y |
| billingAccount.id | string | Billing account identifier | Y |
| productCharacteristic | array | List of product/service-specific characteristics | Y |
| productCharacteristic.name | string | Characteristic name (find the serviceStatusCode here) | Y |
| productCharacteristic.value | any | Characteristic value (find the serviceStatusCode here) | Y |